HTTP的Keep-Alive是什么?TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一个东西吗?

3 分钟阅读 218 字 + 432 词
参考答案
  1. HTTP Keep-Alive ,是由 应用层实现 的,称为 HTTP 长连接
每次请求都要经历这样的过程: 建立 TCP 连接 -> HTTP 请求资源 -> 响应资源 -> 释放连接,这就是HTTP短连接, 但是 这样每次建立连接都只能请求一次资源 ,所以 HTTP Keep-Alive 实现了 使用同一个 TCP 连接来发送和接收多个 HTTP 请求/应答,避免了连接建立和释放的开销 ,就就是 HTTP 长连接 。通过设置HTTP头 Connection: keep-alive 来实现。
  1. TCP Keepalive ,是由 TCP 层(内核态)实现的,称为 TCP 保活机制 ,是一种用于在 TCP 连接上检测空闲连接状态的机制
TCP 连接建立后,如果一段时间内没有任何数据传输, TCP Keepalive 会发送探测包来检查连接是否仍然有效。
TCP的Keepalive是发送心跳包来确保对端是否能够正常响应